﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.IO;
using SampleImageGenerator.Core.Events;

namespace SampleImageGenerator.Core
{
	internal interface IEngine
	{
		event EventHandler<EventArgs> BusyChanged;
		event EventHandler<EventArgs> ProgressChanged;
		
		event EventHandler<ImageGeneratedEventArgs> ImageGenerated;
		event EventHandler<ErrorEventArgs> ErrorOccurred;

		Boolean Busy { get; }
		Int32 Progress { get; }

		void GenerateImageBatchAsync(BatchModeOptions options);
		void GenerateImageAsync(String xml);
		void RequestCancellationAsync();
	}
}
